home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Languguage OS 2
/
Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO
/
language
/
embedded
/
m68k
/
tutor.arc
/
DFDI.SA
< prev
next >
Wrap
Text File
|
1990-01-05
|
4KB
|
140 lines
DFDI IDNT 2,1 DF (Display registers)WITH disassembler 05/27/82
XDEF DFCMD
XDEF TDISPLY
SPC 1
XREF.S BUFFER
XREF DCODE68K
XREF FIXBUF
XREF OUT1CR
XREF OUTPUT
XREF.S OUTTO
XREF PNTCLS
XREF PNT4HX
XREF PNT8HX
XREF PUTHEX
XREF.S REGA7
XREF.S REGPC
XREF.S REGS
XREF.S REGSR
XREF.S REGUS
XREF.S XONOFF
SPC 2
SECTION.S 1
SCREEN1 DS.L 1 PRINT THIS BEFORE TRACE DISPLAY
SCREEN2 DS.L 1 PRINT THIS AFTER TRACE DISPLAY
SECTION 11
REGNAMES DC.L 'PCSR' TABLE OF NAMES OF REGISTERS
DC.L 'USSS'
DC.W '??' END OF TABLE
PAGE
DFCMD DS 0 DF COMMAND ENTRY
BRA.S TD07
TDISPLY BSR FIXBUF PRINT TRACE DISPLAY SUBROUTINE
TST.B XONOFF+3
BNE.S TD25 SHORT DISPLAY
TD07 BSR FIXBUF PRINT PRELUDE
CLR.L OUTTO FORCE DISPLAY TO OPERATORS CONSOLE
MOVE.L SCREEN1,(A6)+
BEQ.S TD09 SKIP PRELUDE
BSR OUTPUT
TD09
SPC 1
LEA REGNAMES(PC),A4 REGISTER NAMES
LEA REGPC,A2 REGISTER DATA
BSR FIXBUF SET UP I/O BUFFER
SPC 1
TD1 MOVE.W (A4)+,D0 GET REG NAME
MOVE.L (A2)+,D7 GET REG CONTENT
CMP.W #'??',D0 SEE IF AT END OF REGS
BNE.S TD4
BSR OUT1CR PRINT BUFFER
SPC 1
MOVE.B #'D',D7 CLASS=DATA
LEA REGS,A3 OFFSET
BSR PNTCLS GO PRINT THE BLOCK
SPC 1
MOVE.B #'A',D7 CLASS=ADDRESS
LEA REGS+32,A3 OFFSET
BSR PNTCLS GO PRINT THE BLOCK
SPC 1
BSR FIXBUF
MOVE.L #20,D1 LOOP COUNTER
TD27 MOVE.B #'-',(A6)+ FILL BUFFER WITH BOARDER
SUB.L #1,D1
BNE TD27
TD25 MOVE.L REGPC,A4 DISASSEMBLE
MOVEM.L (A4),D0-D2
MOVE.L A6,A5
BSR DCODE68K
LEA BUFFER,A5
BSR OUT1CR PRINT
SPC 1
BSR FIXBUF PRINT END STUFF FOR SCREEN CONTROL
MOVE.L SCREEN2,(A6)+
BEQ.S TD39 SKIP END STUFF
BSR OUTPUT
TD39 RTS RETURN FOR MORE WORK
SPC 1
TD4 MOVE.W D0,D2 PRINT REG NAME IN BUFFER
ASR.W #8,D0 MOVE IT OVER
MOVE.B D0,D3 SAVE REGISTER TYPE A,D,W,M ETC
MOVE.B D0,(A6)+ SAVE FIRST LETTER
MOVE.B D2,(A6)+ SAVE NEXT LETTER
MOVE.B #'=',(A6)+ EQUAL SIGN
CMP.W #'US',D2 . 2,1
BNE.S T44 . 2,1
MOVE.L REGUS,D0 USER STACK 2,1
BRA.S T449
SPC 1
T44 CMP.W #'SS',D2 SUPER STACK IS SPECIAL
BNE.S T448
MOVE.L REGA7,D0 GET A7
BRA.S T449
SPC 1
T448 MOVE.L D7,D0 REGISTER VALUE
CMP.W #'SR',D2 SEE IF STATUS REGISTER
BEQ.S TDCC
T449 BSR PNT8HX FORMAT 8 HEX CHAR 2,1
TD9 MOVE.B #' ',(A6)+ SPACE BETWEEN REGS
BRA TD1
SPC 1
* CONDITION CODE FORMAT
*
TDCC MOVE.W D0,D3 SAVE FOR A MOMENT
BSR PNT4HX
MOVE.B #'=',(A6)+
MOVE.L #$80000054,D7 TRACE BIT
BSR.S TDCC9
MOVE.L #$20000053,D7 SUPERVISOR BIT
BSR.S TDCC9
MOVE.W D3,D0 INTERRUPT LEVEL
LSR.W #8,D0
AND.B #$07,D0 "7" MAX IN SR FOR LEVEL
BSR PUTHEX
MOVE.L #$100058,D7 X BIT
BSR.S TDCC9
MOVE.L #$8004E,D7 N BIT
BSR.S TDCC9
MOVE.L #$4005A,D7 Z BIT
BSR.S TDCC9
MOVE.L #$20056,D7 V BIT
BSR.S TDCC9
MOVE.L #$10043,D7 C BIT
BSR.S TDCC9
BRA TD9
*
TDCC9 MOVE.L D7,D6 DUPLICATE STUFF
SWAP D6 GET BIT POSITION
AND.W D3,D6 SEE IF ON
BNE.S TDCC91
MOVE.B #'.',D7 PUT IN PERIOD IF OFF
TDCC91 MOVE.B D7,(A6)+ PUT IN LETTER IF ON
RTS
END